iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

前言
結合前面有提到基本類型和參考類型今天要將基本類型包裝成參考類型

8種基本資料類型,可以進行簡單、有效的常規資料處理,但會有一些制約,因為基本資料類型的資料不具備物件的特性:沒有成員變數、方法可以呼叫,而參考類型的變數都繼承了Object類別,為了解決這個問題Java提供了包裝類別,以下是對應的關係:
https://ithelp.ithome.com.tw/upload/images/20230920/20163139WJ0TVYmlxq.png

自動裝箱

把基礎類型直接賦值給對應的包裝類別變數或Object變數

自動拆箱

包裝類別變數賦值給對應的基礎類型

以下是自動裝/拆箱的範例:

public class AutoBoxingUnBoxing {

    public static void main(String[] args) {

        //把一個基本類型變數賦給Integer 物件
        Integer intObj = 5;
        //把一個boolean類型變數賦給Object類型變數
        Object boolObj = true;
        //把Integer 物件賦給int類型變數
        int it = intObj;

        if(boolObj instanceof Boolean){
            //把Object物件強制轉換為Boolean 類型,再賦給boolean變數
            boolean b = (Boolean)boolObj;

        }
    }
}

JDK提供了自動裝箱和自動拆箱功能後,大大的簡化了基本類型變數和包裝類別物件之間的轉換過程

包裝類別可以實作基本類型變數和字串之間的轉換

https://ithelp.ithome.com.tw/upload/images/20230920/201631396Y1qtWMrW9.png

public class PrimitiveToString {
    public static void main(String[] args) {
        String intStr = "123";
        int int1 = Integer.parseInt(intStr);
        String intStr2 = String.valueOf(int1);
    }
}

優點

  1. 允許在集合中存儲基本類型: Java的集合框架(如ArrayList、HashMap等)只能存儲對象,無法直接存儲基本類型(如int、double等)。通過將基本類型轉換為對應的包裝類,可以輕鬆地將它們放入集合中。
  2. 支持null值: 基本類型不能存儲null值,但包裝類可以。這對於表示缺失或未初始化的數據很有用。
  3. 提供額外的功能和方法: 包裝類通常提供了與基本類型相關的方法和功能,例如intValue()、doubleValue()等方法,使得在需要進行數值運算或數據處理時更方便。
  4. 自動裝箱和拆箱: 自動裝箱(autoboxing)和自動拆箱(autounboxing)是Java語言的特性,它們允許在基本類型和包裝類之間進行隱式轉換,使代碼更簡潔和易讀。
  5. 允許在泛型中使用: 泛型類型參數不能是基本類型,但可以是包裝類。這意味著如果您希望在泛型類中使用某種類型的數據,則需要使用包裝類。

將基本類型轉換為包裝類提供了更多的靈活性和功能,並使您能夠更容易地處理各種數據操作和存儲需求。然而,這也可能增加一些額外的內存和性能開銷,因為包裝類需要更多的記憶體和運行時處理。因此,在選擇使用基本類型還是包裝類時,需要根據具體的應用場景和性能需求進行權衡考慮。

今天就到這邊,明天就來介紹Java 程式碼慣例喔!


上一篇
Day5-資料類型II
下一篇
Day7 Java 程式碼慣例
系列文
玩轉Java:從基礎打造你的程式超能力30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言